//
//  NSDate.swift
//  WeiboClassSix
//
//  Created by HM on 16/10/12.
//  Copyright © 2016年 HM. All rights reserved.
//

import UIKit

//DateFormatter, Calendar初始化比较消耗内存,一般定义成常量, 在oc中,可以定义成单例
let dateFormat = DateFormatter()
let calendar = Calendar.current

extension Date {
    //Wed Oct 12 10:05:21 +0800 2016
    /// 在3. 0中, 分类里面的类方法,需要使用 static
    static func sinaTimeStringToDate(sinaTimeString: String) -> Date {
        dateFormat.dateFormat = "EEE MMM dd HH:mm:ss zzz yyyy"
        //必须要设,不然的话,模型器和直机可能不一样.
        dateFormat.locale = Locale(identifier: "en")
        //把新浪的时间字符串,转日期
        return dateFormat.date(from: sinaTimeString)!
    }
    
    func sinaDateToShowTime () -> String {
        if calendar.isDateInToday(self) {
            //新浪日期和当前日期的间隔秒数
            let timeInterval = Int(Date().timeIntervalSince(self))
            //如果小于60秒
            if timeInterval < 60 {
                return "刚刚"
            }
            //小于1小时
            if timeInterval < 60 * 60 {
                return "\(timeInterval/60)分钟前"
            }
            
            //小于1天, 大于1小时
            return "\(timeInterval / 3600)小时前"
        }
        
        //如果是昨天
        if calendar.isDateInYesterday(self) {
            dateFormat.dateFormat = "昨天 HH:mm +0800"
        } else {
            //如果不是昨天
            let year = calendar.component(.year, from: self)
            let thisYear = calendar.component(.year, from: Date())
            
            //如果是今年
            if year == thisYear {
                dateFormat.dateFormat = "MM-dd HH:mm"
            } else {
                dateFormat.dateFormat = "yyyy-MM-dd HH:mm"
            }
        }
        
        dateFormat.locale = Locale(identifier: "en")
        return dateFormat.string(from: self)
    }
    
}
